package com.tedu.review.day02;

/**
 *  Java类---继承---方法:具备多态性
 *  实现父子类方法相互调用:注意:重写跟重载
 *  实现多态:向上造型  父类对象  引用=new 子类对象();【创建对象;常见】
 */
class A1{
    public void tell1(){
        System.out.println("A--你好，我是tell1");

    }
    public void tell2(){
        System.out.println("A--你好，我是tell2");
    }
}
class B1 extends A1{
    public void tell2() {
        System.out.println("B---你好，我是tell2");
    }
    public void tell3() {
        System.out.println("B---你好，我是tell2");
    }
}
public class 多态的造型问题 {
    public static void main(String[] args) {
        //继承---方法:方法互通  考虑:多态【造型上|下]
      //  A1 a1=new B1();   抽象类接口使用
       // B1 b1=new B1();
      //  A1 a1=b1;
       // a1.tell1();
      //  a1.tell2();  // 向上造型:调用父类的方法 没有实现方法互通
                      // 如果有重写,子类覆盖父类的方法
        //向下造型:
        A1 a1=new B1();//1父类 引用=new 子类();向上造型一次
        B1 b1=(B1) a1;//2子类 引用= 子类(对象);向上造型引用
        //实现:方法互通
        b1.tell1();//父类方法
        b1.tell2();//子类方法  重写
        b1.tell3();//子类方法
    }
}
